/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Threads;

import GUI.Principal;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import matlabcontrol.MatlabConnectionException;
import matlabcontrol.MatlabInvocationException;
import MatLab.MatLabAnalisis;

/**
 *
 * @author Nico 
 * Clase HiloMatlab, esta clase crea el hilo que llevara a cabo la
 * ejecucion de los computos en MatLab.
 */
public class HiloMatlab extends Thread {

    private String ruta;
    private String nombreArchivo;
    Principal padre;
    public HiloEspera hilo;

    public HiloMatlab(String str, String ruta, String nombreArchivo, Principal padre, HiloEspera hilo) {
        
        super(str);
        this.ruta = ruta;
        this.nombreArchivo = nombreArchivo;
        this.padre = padre;
        this.hilo = hilo;
    }
    
    

    /**
     * Funcion personalizada de run() donde llama a MatLab para que ejecute la
     * convolución del campo correspondiente (Archivo MLC seleccionado). Donde
     * al finalizar, ejecuta la funcion para detener el hilo de la ventana de
     * espera.
     */
    public void run() {

        MatLabAnalisis mat = new MatLabAnalisis();
        try {
            mat.usarMatlab(ruta, nombreArchivo, padre);
            padre.habilitarFuncionesMatlab();
        } catch (MatlabConnectionException ex) {
            padre.errorMatlab();
            hilo.stopThis();
            JOptionPane.showMessageDialog(padre, "Error de conexión con Matlab");
        } catch (MatlabInvocationException ex) {
            hilo.stopThis();
            JOptionPane.showMessageDialog(padre, "Error en la llamada a Matlab");

        }
        hilo.stopThis();
    }
}
